package com.tn.exam.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.hibernate.Criteria;

import com.tn.exam.help.orm.Page;

public interface BaseDao {

	public void insert(Object obj);

	public void update(Object obj);

	public void saveOrUpdate(Object obj);

	public void deleteAll(Collection<?> collection);

	public void delete(Object obj);

	public void delete(Serializable id);

	public void saveOrUpdateAll(Collection<?> collection);

	public Object get(Serializable id);

	public Object load(Serializable id);

	public int getAllTotal();

	public int getTotal(String hql);

	public List getAll();

	public List getAll(String hql);

	public List getByProperty(String attrName, Object value);
	
	/**
	 * 有些属性是UNIQUE的，就是所以值都不相等，有酒只有一个，或者没有。
	 * @param attrName
	 * @param value
	 * @return 有值返回对象，没值返回null
	 * @author taoyf
	 * 2012-9-25 下午10:12:09
	 */
	public Object getUniqueByProperty(String attrName, Object value);

	public List queryForPage(String hql, int offset, int length);
	
	public List queryForPage(int offset, int length);
	
	/*---------------------------------------------------------------*/


	
}

